Reusable Verification of a Copying Collector
نویسنده
چکیده
Garbage collectors are very hard to implement correctly due to their low-level manipulation of memory. In this paper, we construct a copying garbage collector which we have proved to be functionally correct. Our verification proof is structured as a sequence of refinements to aid clarity and proof reuse; it is the first to map implementations into three different machine languages and, unlike some noteworthy published proofs, our verified implementations of memory allocation handle termination and the ‘out-of-memory’ case properly. The work presented here has been developed in the HOL4 theorem prover.
منابع مشابه
Mostly-Copying Collection: A Viable Alternative to Conservative Mark-Sweep
Many high-level language compilers generate C code and then invoke a C compiler to do code generation, register allocation, stack management, and low-level optimization. To date, most of these compilers link the resulting code against a conservative mark-sweep garbage collector in order to reclaim unused memory. We introduce a new collector, MCC, based on mostly-copying collection, and characte...
متن کاملA Generational and Conservative Copying Collector for Hybrid Objectoriented Languages
A copying collector has two excellent properties: it compacts the heap, and the execution time depends solely on the number of live objects. Use of a copying collector is thought by some to be a more efficient way of managing the heap than explicit freeing of objects. This paper describes a high-performance copying collector for a hybrid object-oriented language. The collector is both conservat...
متن کاملIncremental copying garbage collection for WAM-based Prolog systems
We present an incremental copying garbage collector for the heap in WAM-based Prolog systems. We describe a heap layout in which the heap is divided in a number of equal-sized blocks. Other changes to the standard WAM allow to garbage collect these blocks independently from each other. Independent collection of heap blocks is the basis of our incremental algorithm. Compared to other copying col...
متن کاملA Verified Generational Garbage Collector for CakeML
This paper presents the verification of a generational copying garbage collector for the CakeML runtime system. The proof is split into an algorithm proof and an implementation proof. The algorithm proof follows the structure of the informal intuition for the generational collector’s correctness, namely, a partial collection cycle in a generational collector is the same as running a full collec...
متن کاملShort Presentation: Incremental Copying Collection with Pinning (Progress Report)
Inspired by work in semi-conservative collection, we have implemented a mostly-copying collector for an object-oriented language, including support for object pinning. Our collector efficiently manages fragmentation by measuring page residency and determining where copying can be most effective. This work in progress will form the foundation of our ongoing work in real-time collection.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010